// (function($) {
//拖拽滚动
$.fn.dragScroll = function(option) {
    option = $.extend({}, $.fn.dragScroll.option, option);
    return this.each(function() {
        var elem = $(this),
            open_list = $(option.open_list, elem), //底部"点击展开"文字区域
            tip = $(option.tip, elem), //列表在中间时，列表顶部中间的横线条
            pagetop = $(option.pagetop), //页面顶部的搜索区域
            map = $(option.map), //地图区域
            back_step = $(option.back_step), //返回上一步按钮
            starty, //触碰时的y坐标
            endy, //离开时的y坐标
            endy_m, //移动时候的坐标
            str, //elem的class内容
            n; //pos_后面的数字

        var h = w_height * 0.52; //把列表区域的translateY百分比换算成px，用setInterval处理动态滑动效果
        var list_height; //elem的实际高度。

        var isMove = false; //是否在动画中。
        // transformCss(elem,h);

        //实时获得pos_后面的数字
        function get_n() {
            str = elem.attr("class");
            n = str.indexOf("pos_");
            n = str.substring(n + 4, n + 5);
        }

        function touch_up() {
            console.log("up:" + isMove);

            isMove = true;
            setTimeout(function() {
                //删掉elem自定义的translateY
                elem.removeAttr('style');
            }, 300);
            setTimeout(function() {
                //设置地图定位按钮和工具条translateY初始值。
                transformCss(".amap-geolocation-con, .amap-toolbar", t_height);

            }, 450);
            //隐藏“点击展开的文字区域”
            // open_list.slideUp(300);
            open_list.removeClass('down');
            //
            elem.addClass('up').removeClass('down');
            elem.addClass('pos_' + (+n + 1)).removeClass('pos_' + n);
            if (n == 2 && $(".page_prev").length == 1) {
                $(".page_prev").hide();
                setTimeout(function() {
                    $(".page_prev").show();
                    elem.scrollTop(24);
                }, 500);
            }
            setTimeout(function() {
                isMove = false;
            }, 505);

        }

        function touch_down() {
            console.log("down:" + isMove);

            isMove = true;
            elem.removeAttr('style');
            tip.slideDown(100);

            elem.addClass('down').removeClass('up')
            elem.addClass('pos_' + (+n - 1)).removeClass('pos_' + n);
            elem.scrollTop(0);
            setTimeout(function() {
                pagetop.removeClass('cover');
            }, 10);
            setTimeout(function() {
                isMove = false;
            }, 505);
        }

        var e_h, //存放touchstart时elem的TranslateY值。初始值。
            h; //移动过程中elem的TranslateY值。变化中。

        elem.on("touchstart", function(event) {
            if (isMove) {
                return false;
            }
            var event = event || window.event;
            event.preventDefault(); //用于修复在移动(Android 4.0.4 手机)浏览器上测试后发现 touchend 事件没有如约触发的bug。
            starty = event.originalEvent.targetTouches[0].pageY;
            get_n();
            e_h = getTranslateY(elem);
            list_height = elem.height();
        });
        elem.on("touchmove", function(event) {
            if (isMove) {
                return false;
            }
            var event = event || window.event;
            endy_m = event.originalEvent.targetTouches[0].pageY;
            h = e_h + endy_m - starty;
            console.log('移动时候列表偏移h: ' + h);
            console.log('列表高度list_height: ' + list_height);
            console.log('整个页面高度w_height: ' + w_height);
            if (n == 3 && list_height >= w_height && (w_height - list_height) <= h) {
                // $("#search").val(h);
                if (list_height == w_height && h <= 22) {
                    return false;
                } else if (h <= 65) {
                    transformCss(elem, h)
                } else if (endy_m > starty) {
                    transformCss(elem, 65)
                } else if (endy_m < starty) {
                    transformCss(elem, w_height - list_height)
                }
            }
            if (e_h == 22 && endy_m > starty) {
                $(".page_prev .i_loading").removeClass('none');
            }
            if ((e_h - 15) < (w_height - list_height) && endy_m < starty) {
                $(".page_next .i_loading").removeClass('none');
            }

            // 

        });


        elem.on("touchend", function(event) {
            if (isMove) {
                return false;
            }
            event.stopPropagation();

            var event = event || window.event;
            endy = event.originalEvent.changedTouches[0].pageY;

            //根据n的值，1：底部，2：中间，3：顶部。      
            if (endy < starty) { //往上
                if (n == 3) {
                    if (e_h - 15 <= w_height - list_height && (w_height - list_height) >= h && currentPage < totalPage) {
                        console.log('加载下一页')
                        currentPage += 1;
                        // $(".loading").show();
                        load_network(currentPage, name);
                        loadmark(networks);
                        transformCss(elem, 22);
                    }
                    return false;
                }
                if (n == 3 && list_height == w_height) {
                    if (h <= 65) {
                        transformCss(elem, h)
                    } else if (endy_m > starty) {
                        transformCss(elem, 65)
                    } else if (endy_m < starty) {
                        transformCss(elem, w_height - list_height)
                    }
                }
                if (n == 2) { //从中间往上滑
                    setTimeout(function() {
                        //隐藏列表顶部中间的横线条
                        tip.slideUp(100);
                        //页面顶部的搜索区域增加样式，该样式用于渐变显示背景色，调整内部元素样式。
                        pagetop.addClass('cover');
                        elem.height("auto");
                    }, 450);

                }
                if (n == 1) { //从底部往上滑
                    //地图区域滚动回之前的位置。
                    // map.addClass('up').removeClass('down');
                    setTimeout(function() {
                        map.addClass('up').removeClass('down');
                    }, 200);
                }
                touch_up();
            } else if (endy > starty) { //往下
                // open_list.hide();
                open_list.removeClass("down");


                if (n == 1) {
                    return false;
                }
                if (n == 3 && e_h < 22) { //elem的可视区域有滚动的情况下不触发滑动效果
                    if (h > 22 && currentPage != 1) {
                        transformAnimation(elem, 65, 2, 22, 10, true);
                    }
                    return false;
                }
                if (n == 3 && e_h <= 65 && currentPage != 1) { //elem的可视区域有滚动的情况下不触发滑动效果
                    console.log("加载上一页");

                    currentPage -= 1;

                    // $(".loading").show();
                    load_network(currentPage, name);
                    loadmark(networks);
                    if (currentPage != 1) {
                        transformCss(elem, 22)
                    }
                    return false;
                }
                if (n == 2) {
                    //地图区域增加样式，改变地图的translateY偏移位置

                    var t = setInterval(function() {
                        if (h > _height) { //_height是页面除了点击展开的127px之外的区域高度。
                            clearInterval(t);
                            transformCss(elem, _height);
                            h = w_height * 0.52; //重置h。
                        } else {
                            transformCss(elem, h);
                            h = h + 10;
                        }

                    }, 20);

                    var h_t = t_height; //用h_t记录地图定位按钮和工具按钮的ranslateY初始值。
                    setTimeout(function() {

                        if (pla == 0) { //iphone
                            transformAnimation(".amap-geolocation-con, .amap-toolbar", h_t, 10, -52, 20);
                        } else { //Android
                            transformAnimation(".amap-geolocation-con, .amap-toolbar", h_t, 10, -32, 20);
                        }
                        map.addClass('down');
                    }, 200);
                    open_list.addClass("down");

                    touch_down();
                    return false;
                }
                elem.removeAttr('style');
                touch_down();
            }
        });


        open_list.on("touchstart", function(event) {
            if (isMove) {
                return false;
            }
            var event = event || window.event;
            event.preventDefault(); //用于修复在移动(Android 4.0.4 手机)浏览器上测试后发现 touchend 事件没有如约触发的bug。
            starty = event.originalEvent.targetTouches[0].pageY;
        });

        open_list.on("touchend", function(event) { //底部"点击展开"文字区域点击时
            event.stopPropagation();

            var event = event || window.event;
            endy = event.originalEvent.changedTouches[0].pageY;

            if (endy <= starty) {
                touch_up();
                //地图区域滚动回之前的位置。
                setTimeout(function() {
                    map.addClass('up').removeClass('down');
                }, 200);
            }
        });
        back_step.on("touchend", function(event) { //返回上一步按钮点击时
            event.stopPropagation();
            if ($(".search_wrap").hasClass('focus')) {
                var name = getCookie('name') || '';
                $("#search").val(name).blur();
            }

            if ($(".search_wrap").hasClass('focus')) {
                $(".search_wrap").removeClass('focus');
            } else {
                get_n();
                touch_down();
                map.removeClass('down');
            }
        });
    });
};
$.fn.dragScroll.option = {
    open_list: ".open_list",
    tip: ".tip",
    pagetop: ".searchbox",
    map: "#container",
    back_step: ".back_step"
};

// })(jQuery);



//调试
$(function() {
    //网点列表动画
    $(".network_list").dragScroll();
});